// Token存储相关
const TokenKey = 'medical-token'

// 获取Token
export function getToken() {
  return localStorage.getItem(TokenKey)
}

// 设置Token
export function setToken(token) {
  return localStorage.setItem(TokenKey, token)
}

// 移除Token
export function removeToken() {
  return localStorage.removeItem(TokenKey)
}

// 解析JWT Token获取基本信息(不验证签名)
export function decodeToken(token) {
  if (!token) return null

  try {
    // 分解JWT
    const base64Url = token.split('.')[1]
    const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/')
    const payload = JSON.parse(window.atob(base64))
    
    return payload
  } catch (error) {
    console.error('Token解析错误', error)
    return null
  }
}

// 检查Token是否过期
export function isTokenExpired(token) {
  const decoded = decodeToken(token)
  if (!decoded || !decoded.exp) {
    return true
  }
  
  // exp是秒级时间戳，需要转为毫秒
  const expDate = new Date(decoded.exp * 1000)
  const now = new Date()
  
  // 提前5分钟认为过期，以便提前刷新
  const earlyExpiration = 5 * 60 * 1000
  return now.getTime() > expDate.getTime() - earlyExpiration
} 